﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProyectoVeranoAECAasp.Clases;

namespace ProyectoVeranoAECAasp.Vistas
{
    public partial class GestionUsuarios : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.ButtonEditar.Attributes.Add("onClick",
               Master.mensajesConfirmacion("Esta seguro de querer ejecutar esta operación"));
            this.ButtonCancelar.Attributes.Add("onClick",
               Master.mensajesConfirmacion("Esta seguro de querer ejecutar esta operación"));
            this.ButtonAceptar.Attributes.Add("onClick",
               Master.mensajesConfirmacion("Esta seguro de querer ejecutar esta operación"));
            this.ButtonEliminar.Attributes.Add("onClick",
               Master.mensajesConfirmacion("Esta seguro de querer ejecutar esta operación"));
            this.ButtonCrear.Attributes.Add("onClick",
               Master.mensajesConfirmacion("Esta seguro de querer ejecutar esta operación"));

            this.Label9.Text = Global.get_nombreUserLog();
            this.LoginEtiquetaGroup2.Text = Global.get_loginUserLog();
            this.Label10.Text = Global.get_tipoUserLog();
        }

        protected void LinkButtonSalir_Click(object sender, EventArgs e)
        {
            Session["UsuarioID"] = null;
            Session["TipoUsuarioGlobal"] = null;
            Response.Redirect("/Vistas/Autenticacion.aspx");
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            TextBoxSeleccionado.Text = GridView1.SelectedRow.Cells[1].Text;
            LabelErrorSeleccion.Text = "";
        }

        protected void ButtonEditar_Click(object sender, EventArgs e)
        {
            if (TextBoxSeleccionado.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Primero debe seleccionar un usuario");
            else
            {
                Global.set_opcionEdicionUsuario("Editar");
                LabelErrorSeleccion.Text = "";
                PanelSeleccion.Visible = false;
                PanelEdicion.Visible = true;
                DetailsView1.DataBind();
                TextBoxLogin.Text = DetailsView1.Rows[5].Cells[1].Text;
                TextBoxNombre.Text = DetailsView1.Rows[0].Cells[1].Text;
                TextBoxApellido1.Text = DetailsView1.Rows[1].Cells[1].Text;
                TextBoxApellido2.Text = DetailsView1.Rows[2].Cells[1].Text;
                TextBoxCedula.Text = DetailsView1.Rows[3].Cells[1].Text;
                DropDownList1.SelectedValue = DetailsView1.Rows[8].Cells[1].Text;
            }
        }

        protected void ButtonEliminar_Click(object sender, EventArgs e)
        {
            if (TextBoxSeleccionado.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Primero debe seleccionar un usuario");
            else
            {
                LabelErrorSeleccion.Text = "";
                SqlDataSource2.DeleteParameters.Clear();
                SqlDataSource2.DeleteParameters.Add(@"login", TextBoxSeleccionado.Text);
                SqlDataSource2.Delete();
                GridView1.DataBind();
                TextBoxSeleccionado.Text = "";
                GridView1.SelectedIndex = -1;
            }
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //TextBoxApellido1.Text = "este si";
        }

        protected void ButtonAceptar_Click(object sender, EventArgs e)
        {
            if (TextBoxNombre.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe indicar el nombre del usuario");
            else if (TextBoxApellido1.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe indicar el primer apellido del usuario");
            else if (TextBoxApellido2.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe indicar el segundo apellido del usuario");
            else if (TextBoxCedula.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe indicar la cédula del usuario");
            else if (TextBoxContra.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe indicar la contraseña del usuario");
            else if (TextBoxConfirmarContra.Text.CompareTo("") == 0)
                Master.mensajesAlerta("Debe confirmar la contraseña del usuario");
            else if (TextBoxConfirmarContra.Text.CompareTo(TextBoxContra.Text) != 0)
                Master.mensajesAlerta("Las contraseñas indicadas no coinciden");
            else
            {
                if (Global.get_opcionEdicionUsuario().CompareTo("Editar") == 0)
                {
                    SqlDataSource2.UpdateParameters.Clear();
                    SqlDataSource2.UpdateParameters.Add(@"login", TextBoxLogin.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Nombre", TextBoxNombre.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Apellido1", TextBoxApellido1.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Apellido2", TextBoxApellido2.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Cedula", TextBoxCedula.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Password", TextBoxContra.Text);
                    SqlDataSource2.UpdateParameters.Add(@"Tipo", DropDownList1.SelectedValue);
                    SqlDataSource2.Update();
                    vaciar();
                    Master.mensajesAlerta("Se actualizó correctamente la información del usuario");
                }
                else if (Global.get_opcionEdicionUsuario().CompareTo("Crear") == 0)
                {
                    TextBoxSeleccionado.Text = TextBoxLogin.Text;
                    DetailsView1.DataBind();
                    if (DetailsView1.Rows.Count != 0)
                        LabelError.Text = "Ya existe este login, intente con otro";
                    else
                    {
                        SqlDataSource2.InsertParameters.Clear();
                        SqlDataSource2.InsertParameters.Add(@"login", TextBoxLogin.Text);
                        SqlDataSource2.InsertParameters.Add(@"Nombre", TextBoxNombre.Text);
                        SqlDataSource2.InsertParameters.Add(@"Apellido1", TextBoxApellido1.Text);
                        SqlDataSource2.InsertParameters.Add(@"Apellido2", TextBoxApellido2.Text);
                        SqlDataSource2.InsertParameters.Add(@"Cedula", TextBoxCedula.Text);
                        SqlDataSource2.InsertParameters.Add(@"Password", TextBoxContra.Text);
                        SqlDataSource2.InsertParameters.Add(@"Tipo", DropDownList1.SelectedValue);
                        SqlDataSource2.Insert();
                        vaciar();
                        Master.mensajesAlerta("Se creó correctamente el usuario");
                    }
                }
            }
        }
        private void vaciar()
        {
            TextBoxLogin.Text = "";
            TextBoxNombre.Text = "";
            TextBoxApellido1.Text = "";
            TextBoxApellido2.Text = "";
            TextBoxCedula.Text = "";
            TextBoxContra.Text = "";
            TextBoxConfirmarContra.Text = "";
            TextBoxSeleccionado.Text = "";
            DropDownList1.SelectedIndex = 0;
            GridView1.DataBind();
            GridView1.SelectedIndex = -1;
            PanelSeleccion.Visible = true;
            PanelEdicion.Visible = false;
            LabelError.Text = "";
            LabelErrorSeleccion.Text = "";
            TextBoxLogin.Enabled = false;
        }
        protected void ButtonCancelar_Click(object sender, EventArgs e)
        {
            vaciar();
        }

        protected void ButtonCrear_Click(object sender, EventArgs e)
        {
            Global.set_opcionEdicionUsuario("Crear");
            TextBoxLogin.Enabled = true;
            PanelEdicion.Visible = true;
            PanelSeleccion.Visible = false;
        }

        protected void GridView1_PageIndexChanged(object sender, EventArgs e)
        {
            GridView1.SelectedIndex = -1;
            TextBoxSeleccionado.Text = "";
        }

        protected void GridView1_Sorted(object sender, EventArgs e)
        {
            GridView1.SelectedIndex = -1;
            TextBoxSeleccionado.Text = "";
        }

        protected void TextBoxSeleccionado_TextChanged(object sender, EventArgs e)
        {

        }
    }
}